using UnityEngine;
using DG.Tweening;

public class DOTweenCubeRotate : MonoBehaviour
{
    public Gradient _Gradient;
    
    void Start()
    {
        transform.DOMove(Vector3.one, 2);
        transform.DOLocalMove(Vector3.one, 2);
        transform.DOLocalMoveX(5, 2);

        transform.DORotate(new Vector3(0, 180, 0), 2);
        transform.DOLocalRotate(new Vector3(0, 180, 0), 2);
        transform.DORotateQuaternion(new Quaternion(0.1f, 0.1f, 0.1f, 0.1f), 2);

        transform.DOLookAt(Vector3.one, 2);

        transform.DOScale(Vector3.one * 2, 2);

        //第一参数：位置
        //第二参数：消耗时间
        //第三参数：次数
        //第四参数：衰弱量
        transform.DOPunchPosition(Vector3.one, 2, 2, 0.1f);
        transform.DOPunchRotation(new Vector3(0, 180, 0), 2, 2, 10);
        transform.DOPunchScale(Vector3.one * 2, 2, 2, 01f);

        //根据频率+角度方向震动
        //第四个参数为0，震动方向随机
        transform.DOShakePosition(2, Vector3.one, 10, 90);
        
        //Blend
        //混合叠加效果
        transform.DOBlendableMoveBy(Vector3.one, 2);

        //Material
        Material mat = GetComponent<MeshRenderer>().material;
        mat.DOColor(Color.red, 2);
        mat.DOColor(Color.red, "TintColor", 2);
        
        //透明效果
        mat.DOColor(Color.clear, "TintColor", 2);
        mat.DOFade(0, "TintColor", 2);

        //渐变效果
        mat.DOGradientColor(_Gradient, 2);
        
        //Offset
        //平面流动效果
        //武器流光效果
        mat.DOOffset(Vector2.one, 2);
        
        //改变四位向量值
        mat.DOVector(Vector4.zero, "TintColor", 2);
        
        //颜色混合效果
        mat.DOBlendableColor(Color.blue, 2);
        mat.DOBlendableColor(Color.red, 2);
    }
    
}
